# -*- coding: utf-8 -*-
"""
Created on Sun Aug 20 09:17:22 2023

@author: skunk69
"""

import json

chinese_name = u'归因方式问卷'
english_name = 'Attributional Style Questionnaire'
abbreviation = 'ASQ'
category = u'行为方式量表'

outline = u"""人们对生活中发生的事件进行分析，指出其性质或推论其原因的过程就是归隐。在分析某一事件的原因时，个体可以从三个方面来进行评价：内在性-外在性，持久性-暂时性，整体性-局部性，对正负事件的不同归因方式与身心健康的维持有明显关系。
《归因方式问卷》（Attributional Style Questionnaire, ASQ）由郭文斌和姚树桥于2003年采用社会测量法编制。该问卷以Abramson等提出的抑郁症的归因假设为基础：患者倾向于将负性事件归因为内在的、持久的、整体的，而将正性事件归因为外在的、暂时的、局部的，具有这种归因方式的个体很可能表现出抑郁症状。ASQ包括正、负性事件各5个，对这些事件从内在性-外在性，持久性-暂时性，整体性-局部性3个维度进行归因，归结出被试的归因方式特征。"""

instruction = u"""下面是每个人都有可能遇到的一些生活事件，请您在每一个事件后写出一个主要原因，然后根据这一原因回答一些问题。请您根据自己的情况选择一个数字（1和5表示两种不同的态度，3表示中间态度）。请您实事求是地回答，注意不要漏答，谢谢您的合作！"""

with open('ASQ.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for key,line in enumerate(lines[::8]):
    items[key+1] = line.strip()
    
hint = lines[1].strip()
questions = {}
choices = {}
for line in lines[2:7:2]:
    key,value = line.strip().split('.',maxsplit=1)
    questions[key] = value.strip()
    
for key,line in enumerate(lines[3:8:2]):
    choices[key+1] = line.strip().split()

rating = [hint,questions,choices]

reverse_items = []
scales = [u'正性事件',u'负性事件']
scales_items = [
    [2,3,4,7,8],# 正性事件
    [1,5,6,9,10],# 负性事件
    ]
factors = []
factors_scales = []
score_rules = list(range(1,6))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《归因方式问卷》属于一个自评量表。"""

reliability = u"""本问卷的样本包括3个方面：大学生样本、抑郁症患者组、正常对照组。对各年级大学生ASQ总体指标及3个维度进行比较，ASQ各指标无年级差别、性别差异，ASQ各维度的相关系数在0.154~0.847。ASQ各指标的内部一致性系数为0.39～0.766，重测信度为0.443～0.824。"""
validity = u"""实证效度方面，将病人治疗前的各指标与对照组相比，发现除负性事件的内在性维度外，其余各指标的差异均达到显著水平（P<0.01）。这与Abramson的归因假设一致。随着治疗的进行，其归因方式发生了改变，表现在对负性事件治疗后更多地归因为暂时的、局部的、总体指标上为外在的，对正性事件治疗后更多地归因为内在的。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""主要从总体指标、内在性-外在性、持久性-暂时性、整体性-局部性四个方面计分。五级计分法，将正负事件分开计分。每个题目分别包括内在性-外在性、持久性-暂时性、整体性-局部性三个维度。将正、负性事件的三个维度的得分分别相加除以5得到3个维度的得分。将将正、负性事件的三个维度的得分全部相加除以15得到总体指标的得分。"""

applications = u"""无常模。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)